﻿namespace Pathfinder.Base.Constructs
{
    /// <summary>
    /// AC Type is an enumerable which lists all the known types of AC.
    /// </summary>
    public enum ACType
    {
        /// <summary>
        /// Dexterity modifier to AC.
        /// </summary>
        [ACTypeEffect(false, true, true, "Dexterity")]
        Dex,

        /// <summary>
        /// Monk modifier to AC.
        /// </summary>
        [ACTypeEffect(true, true, false, "Wis,Wisdom")]
        Monk,

        /// <summary>
        /// Shield Bonus.
        /// </summary>
        [ACTypeEffect(true)]
        Shield,

        /// <summary>
        /// Armor bonus
        /// </summary>
        [ACTypeEffect(true)]
        Armor,

        /// <summary>
        /// Profane bonus.
        /// </summary>
        [ACTypeEffect(true, true)]
        Profane,

        /// <summary>
        /// Sacred bonus
        /// </summary>
        [ACTypeEffect(true, true)]
        Sacred,

        /// <summary>
        /// Deflection bonus
        /// </summary>
        [ACTypeEffect(true, true)]
        Deflection,

        /// <summary>
        /// Natural bonus.
        /// </summary>
        [ACTypeEffect(true)]
        Natural,

        /// <summary>
        /// Dodge bonus.
        /// </summary>
        [ACTypeEffect(false, true)]
        Dodge,

        /// <summary>
        /// Size bonus.
        /// </summary>
        [ACTypeEffect(true, true, true)]
        Size,

        /// <summary>
        /// Insight bonus.
        /// </summary>
        [ACTypeEffect(true, true)]
        Insight,

        /// <summary>
        /// Other bonus, or untyped.
        /// </summary>
        [ACTypeEffect(true, true)]
        Other,

        /// <summary>
        /// Rage bonus.
        /// </summary>
        [ACTypeEffect(true, true, true)]
        Rage,

        /// <summary>
        /// Luck bonus.
        /// </summary>
        [ACTypeEffect(true, true)]
        Luck
    }
}
